home *** CD-ROM | disk | FTP | other *** search
-
- my_qsort(int data[],int first,int last)
- {
- int i;
- int j;
- int temp;
-
- i = first + 1;
- j = last;
- while ( i <= j )
- {
- while ( data[i] <= data[first] && i <= last )
- i++;
- while ( data[j] >= data[first] && j > first )
- j--;
- if ( j > i )
- {
- temp = data[i];
- data[i] = data[j];
- data[j] = temp;
- }
- }
- temp = data[first];
- data[first] = data[j];
- data[j] = temp;
- if ( (j-first) > 1 )
- my_qsort( data, first, j-1 );
- if ( (last-j) > 1 )
- my_qsort( data, j+1, last );
- }
-
- A Minimal Quicksort Written in C
- Figure 7
-
-